iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
DevOps

30天的社群機器人之旅系列 第 12

Day 12 URI action & Camera action

  • 分享至 

  • xImage
  •  

昨天簡單介紹了 Quick Reply 的使用方式,今天就要來介紹一些讓 Quick Reply 變得強大的一些秘密。

如果你還記得 Day 05 的那個對應表格,應該有注意到下方有些有寫著 (Quick reply Only) 的 Action ,而我們就是要介紹其中的一個 Camera action ,還有雖然不是 Quick Reply Only 但依然好用的 URI action 。

怕各位忘記,在這邊補充一下

Action =======================> Event
├── Message action ------------ MessageEvent
|                               ├── TextMessage
|                               ├── StickerMessage
|                               ├── ImageMessage
|                               ├── VideoMessage
|                               ├── AudioMessage
|                               ├── LocationMessage
|                               ├── * Imagemap message
|                               ├── * Template message
|                               ├── FlexMessage
|                               └── FileMessage
├── Postback action ----------- PostbackEvent
├── URI action
├── Datetime picker action ---- PostbackEvent
├── Camera action (Quick reply Only)
├── Camera roll action (Quick reply Only)
├── Location action (Quick reply Only)
└── Richmenu Switch Action ---- PostbackEvent

首先先介紹一下 URI action ,看名字就知道跟 URL 有關,且它並沒有對應的 Event ,因為它對應的動作就是開啟瀏覽器讓我們瀏覽某個 URL 。

只要將 QuickReplyButton 的 action 設定為 URIAction ,並指定好對應的 URI ,這樣就可以在觸發 Button 時直接進入對應的 URI 了。

但是 Line 平台預設是用內建的瀏覽器打開,這樣在某些情況下會有些不便,因此我們可以在 URI 的最後面加上一個參數 ?openExternalBrowser=1 ,這樣 Line 就會自動用預設的瀏覽器打開我們的 URI 了。

@handler.add(PostbackEvent)
def handle_postback(event):
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(
            text=event.postback.data,
            quick_reply=QuickReply(
                items=[
                    QuickReplyButton(
                        action=URIAction("Google", uri="https://www.google.com/")
                    ),
                    QuickReplyButton(
                        action=URIAction("Youtube", uri="https://www.youtube.com/?openExternalBrowser=1")
                    )
                ]
            )
        )
    )

接著就要介紹 Quick Reply Only 的 Camera action ,這個 Action 可以讓我們快速開啟相機,讓我們不用切出去再切回來。

@handler.add(PostbackEvent)
def handle_postback(event):
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(
            text=event.postback.data,
            quick_reply=QuickReply(
                items=[
                    QuickReplyButton(
                        action=URIAction("Google", uri="https://www.google.com/", alt_uri="https://www.google.com/")
                    ),
                    QuickReplyButton(
                        action=URIAction("Youtube", uri="https://www.youtube.com/?openExternalBrowser=1", alt_uri="https://www.youtube.com/")
                    ),
                    QuickReplyButton(
                        action=CameraAction("Camera")
                    )
                ]
            )
        )
    )

如果順利的話,應該就可以順利開啟相機及瀏覽器了。

那麼就先到這邊,這兩個好用的 Action 一個是讓我們可以有一些預設回復的模式,另一個則是可以提高使用者體驗,因為有了這些好用的 Action 才讓 Quick Reply 變得強大。

大家掰~掰~


上一篇
Day 11 Quick reply
下一篇
Day 13 RichMenu
系列文
30天的社群機器人之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言